package LeetCodeP;

import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;

/**
 * 给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
 * 输入: 123
 * 输出: 321
 *
 * 输入: -123
 * 输出: -321
 *
 * 输入: 120
 * 输出: 21
 *
 * 注意:
 *
 * 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231,  231 ,− 1]。
 * 请根据这个假设，如果反转后整数溢出那么就返回 0。
 *
 * @author long
 * @date 2020-07-13 23:06
 */
public class Soluction7 {

   public static int reverse1(int x){
      int r=0;
      while (x!=0){
         if ((r*10)/10!=r){
            r=0;
           break ;
         }
         r=r*10+x%10;
         x/=10;
      }
      return r;
   }

    public static int reverse2(int x){
      int r=0;
      while (x!=0){
         if (x==Integer.MAX_VALUE){
            r=0;
            break;
         }
         r=r*10+x%10;
         x/=10;
      }
      return r;
    }

    public static int reverse(int x) {
       int r=0;
       while (x!=0){
           //判断溢出
           if ((r*10)/10!=r){
                r=0;
                break;
            }
           //r*10没有溢出
           r=r*10+x%10;
           x/=10;
        }
        return r;
    }

    public static  void  main(String[] args){
        System.out.println(reverse2(Integer.MAX_VALUE));
        System.out.println( reverse2(-1234560));
        System.out.println( reverse(-12346));
        System.out.println( reverse(-147258369));


    }
}
